//    Copyright (C) Kherty.  All rights reserved.
using System;

namespace OpenLS.Spreadsheet.Expressions
{
    abstract class ColumnReference : DimensionReference<Column, Row>
    {
        internal abstract Column GetColumn(EvaluationContext context);
        internal abstract ColumnReference Offset(CellRelativeAddress address);
        internal override DimensionReference<Column, Row> OffsetDim(CellRelativeAddress address)
        {
            return Offset(address);
        }

        internal abstract string GetText(TextContext context);

        public abstract bool IsLocked { get; }

        internal abstract ColumnReference Projected(Worksheet targetWorksheet);
    }
}
